import api from './api';

const requstPromise = res => new Promise((resolve, reject) => {
  if (res) {
    resolve(res);
  } else {
    reject(res);
  }
});

// 代理 相关接口
// Agent Controller
const agent = {
  // 代理商品列表
  async agentGoodsList(option) { return api.post("/agent/goods/list", option) },

  // 代理产品列表
  async agentProductList(option) { return api.post("/agent/product/list", option) },

}

// 关联账号相关接口
// Relation Account Controller
const relation = {
  // 账号关联请求审核
  async relationAccountExamine(option) { return api.post("/relation/account/examine", option) },

  // 我的关联账号列表
  async relationAccountList(option) { return api.post("/relation/account/list", option) },

  // 账号关联请求
  async relationRequest(option) { return api.post("/relation/request", option) },

  // 我的账号关联请求列表
  async relationRequestList(option) { return api.post("/relation/request/list", option) },

}
// 支付相关接口
// Payment Controller
const payment = {
  // 订单支付
  async paymentOrder(option) { return api.post("/payment/order", option) },

  // 获取支付方式
  async paymentWay(option) { return api.post("/payment/way", option) },

}

// 发票相关 接口
// Invoice Controller
const invoice = {
  // 添加发票
  async invoiceAdd(option) { return api.post("/invoice/add", option) },

  // 获取默认发票
  async invoiceDefault(option) { return api.post("/invoice/default", option) },

  // 删除发票
  async invoiceDel(option) { return api.post("/invoice/del", option) },

  // 编辑发票
  async invoiceEdit(option) { return api.post("/invoice/edit", option) },

  // 获取发票
  async invoiceGet(option) { return api.post("/invoice/get", option) },

  // 发票列表
  async invoiceList(option) { return api.post("/invoice/list", option) },

}

// 帖子相关接口
// Card Controller
const card = {
  // 收藏/取消收藏 帖子
  async cardCollection(option) { return api.post("/card/collection", option) },

  // 发表评论
  async cardComment(option) { return api.post("/card/comment", option) },

  // 删除 评论/回复
  async cardCommentDel(option) { return api.post("/card/comment/del", option) },

  // 评论/回复 列表
  async cardCommentList(option) { return api.post("/card/comment/list", option) },

  // 删除帖子
  async cardDel(option) { return api.post("/card/del", option) },

  // 帖子详情
  async cardDetail(option) { return api.post("/card/detail", option) },

  // 关注/取消关注 帖子发布人
  async cardFollowAccount(option) { return api.post("/card/follow/account", option) },

  // 商品帖子列表
  async cardGoodsList(option) { return api.post("/card/goods/list", option) },

  // 点赞/取消点赞 帖子
  async cardLike(option) { return api.post("/card/like", option) },

  // 板块帖子列表
  async cardList(option) { return api.post("/card/list", option) },

  // 我发布帖子列表
  async cardMyList(option) { return api.post("/card/my/list", option) },

  // 保存帖子
  async cardSave(option) { return api.post("/card/save", option) },

}
// 排行相关 接口
// Rank Controller
const rank = {
  // 分身币排行
  async rankCoin(option) { return api.post("/rank/coin", option) },

  // 积分排行
  async rankCv(option) { return api.post("/rank/integral", option) },

  // cv排行
  async rankCv(option) { return api.post("/rank/cv", option) },

}

// 板块相关接口
// Plate Controller
const plate = {
  // 板块详情
  async plateDetail(option) { return api.post("/plate/detail", option) },

  // 关注/取消 板块
  async plateFollow(option) { return api.post("/plate/follow", option) },

  // 热门板块列表
  async plateHotList(option) { return api.post("/plate/hot/list", option) },

  // 板块列表
  async plateList(option) { return api.post("/plate/list", option) },

}

// 海报相关接口
// Bill Controller
const bill = {
  // 海报详情
  async billDetail(option) { return api.post("/bill/detail", option) },

  // 海报列表
  async billList(option) { return api.post("/bill/list", option) },

}

// 游客相关接口
// Tourist Controller
const tourist = {
  // 生成海报
  async touristBill(option) { return api.get(`/tourist/bill/${option.accountNo}/${option.billId}`, {}) },

  // 邀请信息
  async touristInvitation(option) { return api.post(`/tourist/invitation/${option.accountNo}`, {}) },

  // 生成商品的分享海报
  async touristBillGood(option) { return api.post(`/tourist/bill/${option.goodsId}`, {}) },

}

// 账号相关接口
// Account Controller
const account = {
  // 账号设置 POST
  async accountSetting(option) { return api.post("/account/setting", option) },

  // 校验手机号码是否注册了账号 POST
  async checkPhone(option, callback) { return api.post("/check/phone", option, callback) },

  // 意见反馈 POST
  async feedback(option) { return api.post("/feedback", option) },

  // 邀请接口 POST
  async invitation(option) { return api.post("/invitation/{accountNo}", option) },

  // 我的信息 POST
  async my(option) { return api.post("/my", option) },

  // 我的帖子列表
  async myCard(option) { return api.post("/my/card", option) },

  // 我的分身币 POST
  async myCoin(option) { return api.post("/my/coin", option) },

  // 我的分身币明细 POST
  async myCoinLog(option) { return api.post("/my/coin/log", option) },

  // 我收藏的帖子 POST
  async myCollectionCard(option) { return api.post("/my/collection/card", option) },

  // 我的CV POST
  async myCv(option) { return api.post("/my/cv", option) },

  // 我的CV明细 POST
  async myCvLog(option) { return api.post("/my/cv/log", option) },

  // 我的粉丝 POST
  async myFans(option) { return api.post("/my/fans", option) },

  // 我关注的人 POST
  async myFollowAccount(option) { return api.post("/my/follow/account", option) },

  // 我关注的板块 POST
  async myFollowPlate(option) { return api.post("/my/follow/plate", option) },

  // 我的信息-帖子相关 POST
  async myInfo(option) { return api.post("/my/info", option) },

  // 我的积分 POST
  async myIntegral(option) { return api.post("/my/integral", option) },

  // 我的积分明细 POST
  async myIntegralLog(option) { return api.post("/my/integral/log", option) },

  // 我点赞的帖子 POST
  async myLikeCard(option) { return api.post("/my/like/card", option) },
  // 我的团队
  async myTeam(option) { return api.post("/my/team", option) },
  // 二维码 GET
  async qrcodeAccountNo(option) { return api.get("/qrcode/{accountNo}", option) },

  // // 二维码 HEAD
  // async qrcodeAccountNo(option) { return api.post("/qrcode/{accountNo}", option) },

  // // 二维码 POST
  // async qrcodeAccountNo(option) { return api.post("/qrcode/{accountNo}", option) },

  // // 二维码 PUT
  // async qrcodeAccountNo(option) { return api.post("/qrcode/{accountNo}", option) },

  // // 二维码 DELETE
  // async qrcodeAccountNo(option) { return api.post("/qrcode/{accountNo}", option) },

  // // 二维码 OPTIONS
  // async qrcodeAccountNo(option) { return api.post("/qrcode/{accountNo}", option) },

  // // 二维码 PATCH
  // async qrcodeAccountNo(option) { return api.post("/qrcode/{accountNo}", option) },

  // 修改密码 POST
  async updatePassword(option) { return api.post("/update/password", option) },

  // 修改手机号码 POST
  async updatePhone(option) { return api.post("/update/phone", option) },

}

// 订单相关接口
// Order Controller
const order = {

  // 代理订单提交
  async orderAgentSubmit(option) { return api.post("/order/agent/submit", option) },
  // 订单取消
  async orderCancel(option) { return api.post("/order/cancel", option) },
  // 订单确认
  async orderConfirm(option) { return api.post("/order/confirm", option) },
  // 确认收货
  async orderConfirmReceipt(option) { return api.post("/order/confirm/receipt", option) },
  // 删除订单
  async orderDel(option) { return api.post("/order/del", option) },
  // 订单详情
  async orderDetail(option) { return api.post("/order/detail", option) },
  // 我的订单列表
  async orderList(option) { return api.post("/order/list", option) },
  // 查看物流
  async logistics(option) { return api.post("/order/logistics", option) },
  // 订单支付结果：true：已支付，false：未支付
  async orderPaymentResult(option) { return api.post("/order/payment/result", option) },
  // 订单退款
  async orderRefund(option) { return api.post("/order/refund", option) },
  // 订单提交
  async orderSubmit(option) { return api.post("/order/submit", option) },

}

// 设备相关接口
// Device Controller
const device = {
  // 保存心率信息
  async deviceHeartRate(option) { return api.post("/device/heart/rate", option) },
  // 心率信息详情
  async deviceHeartRateDetail(option) { return api.post("/device/heart/rate/detail", option) },
  // 心率信息列表
  async deviceHeartRateList(option) { return api.post("/device/heart/rate/list", option) },
}

const request = {
  // 轮播图列表
  async rotationChart(option) { return api.post("/rotation/chart", option) },
  // 发布商品评价
  async goodsAppraise(option) { return api.post("/goods/appraise", option) },

  // 发布商品评价的评论
  async goodsAppraiseComment(option) { return api.post("/goods/appraise/comment", option) },

  // 商品评价评论列表
  async goodsAppraiseCommentList(option) { return api.post("/goods/appraise/comment/list", option) },

  // 商品评价列表
  async goodsAppraiseList(option) { return api.post("/goods/appraise/list", option) },

  // 商品属性/ 规格
  async goodsAttribute(option) { return api.post("/goods/attribute", option) },

  // 商品收藏
  async goodsCollection(option) { return api.post("/goods/collection", option) },

  // 商品收藏列表
  async goodsCollectionList(option) { return api.post("/goods/collection/list", option) },

  // 商品详情
  async goodsDetail(option) { return api.post("/goods/detail", option) },

  // 已注册用户绑定微信
  async bindLogin(option) { return api.post("/bind/login", option) },

  // 校验是否绑定了微信
  async checkBindWechat(option) { return api.post("/check/bind/wechat", option) },

  // 邀请登录 
  async invitationLogin(option) { return api.post("/invitation/login", option) },

  // 密码登录 /login
  async login(option) { return api.post("/login", option) },

  // 短信验证码登录 /sms/login
  async smsLogin(option) { return api.post("/sms/login", option) },

  // 微信登录
  async wechatLogin(option) { return api.post("/wechat/login", option) },

  // 发送短信验证码 /sms/send
  async smsSend(option) { return api.post("/sms/send", option) },

  // 设置登录密码 /setting/password
  async settingPassword(option) { return api.post("/setting/password", option) },

  // 刷新token /refresh/token
  async refreshToken(option) { return api.post("/refresh/token", option) },

  // 商品分类分页查询 /category/list
  async categoryList(option) { return api.post("/category/list", option) },

  // 上传文件 /upload
  async upload(option) { return api.upload("/upload", option) },

  // 代理省市地址 /region
  async agentRegion(option) { return api.post("/agent/region", option) },

  // 省市区县/乡 /region
  async region(option) { return api.post("/region", option) },

  // 新增收货地址 /delivery/address/insert
  async deliveryAddressInsert(option) { return api.post("/delivery/address/insert", option) },

  // 收货地址列表 /delivery/address/list
  async deliveryAddressList(option) { return api.post("/delivery/address/list", option) },

  // 获取默认收货地址 /delivery/address/default
  async deliveryAddressDefault(option) { return api.post("/delivery/address/default", option) },

  // 通过id获取收货地址 /delivery/address/get
  async deliveryAddressGet(option) { return api.post("/delivery/address/get", option) },

  // 通过ID删除收货地址 /delivery/address/del
  async deliveryAddressDel(option) { return api.post("/delivery/address/del", option) },

  // 修改收货地址 /delivery/address/update
  async deliveryAddressUpdate(option) { return api.post("/delivery/address/update", option) },

  // 商品搜索 /search
  async search(option) { return api.post("/search", option) },

  // 用户搜索记录 /search/log
  async searchAsync(option) { return api.post("/search/log", option) },

  // 删除搜索记录 /search/log/del
  async searchLogDel(option) { return api.post("/search/log/del", option) },

  // 热门搜索/推荐搜索词 /search/recommend
  async searchRecommend(option) { return api.post("/search/recommend", option) },

  // 加入购物车 /shop/cart/add
  async shopCartAdd(option) { return api.post("/shop/cart/add", option) },

  // 我的购物车商品列表 /shop/cart/list
  async shopCartList(option) { return api.post("/shop/cart/list", option) },

  // 修改购物车商品数量或规格 /shop/cart/update
  async shopCartUpdate(option) { return api.post("/shop/cart/update", option) },

  // 删除购物车中一个或多个商品 /shop/cart/del
  async shopCartDel(option) { return api.post("/shop/cart/del", option) },
  
  // 提现 /withdrawal
  async withdrawal(option) { return api.post("/withdrawal", option) },
  ...order,
  ...device,
  ...account,
  ...relation,
  ...payment,
  ...card,
  ...rank,
  ...plate,
  ...bill,
  ...tourist,
  ...agent,
  ...invoice
};

export default request;
